package main

// 递归函数 实现函数 odd和even之间的相互调用
import "fmt"

// 主函数
func main() {
	// 测试even函数
	fmt.Printf("%d is even: is %t\n", 16, even(16))
	// 测试odd函数
	fmt.Printf("%d is odd: is %t\n", 17, odd(17))
	fmt.Printf("%d is odd: is %t\n", 18, odd(18))
}

// even 判断一个整数是否为偶数
// 参数 nr: 待判断的整数
// 返回值: 如果nr为偶数返回true，否则返回false
func even(nr int) bool {
	if nr == 0 {
		return true
	} else {
		// 通过调用odd函数来判断nr是否为偶数
		return odd(RevSign(nr) - 1)
	}
}

// odd 判断一个整数是否为奇数
// 参数 nr: 待判断的整数
// 返回值: 如果nr为奇数返回true，否则返回false
func odd(nr int) bool {
	if nr == 0 {
		return false
	} else {
		// 通过调用even函数来判断nr是否为奇数
		return even(RevSign(nr) - 1)
	}
}

// RevSign 返回一个整数的绝对值
// 参数 nr: 待处理的整数
// 返回值: nr的绝对值
func RevSign(nr int) int {
	if nr < 0 {
		return -nr
	}
	return nr
}
